widget: Reset the accessible role when a new accessible type is set
authorBenjamin Otte <otte@gnome.org>
Mon, 18 Jul 2011 15:41:01 +0000 (17:41 +0200)
committerBenjamin Otte <otte@gnome.org>
Mon, 18 Jul 2011 16:30:50 +0000 (18:30 +0200)
We want the role to be kept in the accessible object. Using
gtk_widget_class_set_accessible_role() is only meant as a quick
workaround to requiring subclassing of the accessibles in the quite
common case where a subclass does not change the accessible
implementation at all and only has a different role.

gtk/gtkwidget.c

index 905a39eb6c9ba64ae118edf4c46d3e270feaa7a5..4f47dcdcd0701cf72401e789c4833e7810f3e1fe 100644 (file)
@@ -11942,6 +11942,8 @@ gtk_widget_class_set_accessible_type (GtkWidgetClass *widget_class,
   priv = widget_class->priv;
 
   priv->accessible_type = type;
+  /* reset this - honoring the type's role is better. */
+  priv->accessible_role = ATK_ROLE_INVALID;
 }
 
 /**
@@ -11951,7 +11953,8 @@ gtk_widget_class_set_accessible_type (GtkWidgetClass *widget_class,
  *
  * Sets the default #AtkRole to be set on accessibles created for
  * widgets of @widget_class. Accessibles may decide to not honor this
- * setting if their role reporting is more refined.
+ * setting if their role reporting is more refined. Calls to 
+ * gtk_widget_class_set_accessible_type() will reset this value.
  *
  * In cases where you want more fine-grained control over the role of
  * accessibles created for @widget_class, you should provide your own